[レポート] 『Data Engineering Study #23 Data orchestration 特集』 #DataEngineeringStudy
アライアンス事業部 エンジニアグループ モダンデータスタック(MDS)チームの しんや です。
データ分析に於いて、「データオーケストレーション(Data orchestration)」という分野、カテゴリが存在します。端的に言うと「サイロ化されたデータを複数のストレージから一元化されたリポジトリに移動させ、そこで結合、クリーニング、エンリッチ化し、アクティブ化(ビジネス・インテリジェンス・ツールでのレポート作成など)するプロセス」(端的じゃなかった...) という定義となるのですが、2024年03月05日(火)に開催された『Data Engineering Study #23』にてこの「データオーケストレーション(Data orchestration)」を特集するということでイベントに参加(オンライン視聴)しました。
当エントリでは、その参加(視聴)内容についてざっくりではありますがレポートしたいと思います。
ちなみに、イベントのX投稿についてもTogetterにまとめています。宜しければ合わせてご参照ください。
目次
イベント概要
イベントページに記載の概要情報は以下の通り。
データ分析の必要性がますます高まる中で、“サイロ化したデータにとらわれてなかなかビジネスの力に変えることができていない”という企業は多いのではないでしょうか。 そこでData Engineering Study第23回では、データ統合のための「Data orchestration」を通してデータ活用の現在形を考えます。
イベントレポート
ここからはイベントレポートの内容となります。ちなみにイベント終了時点で配信動画、及び発表資料は全て公開されていますのでそれら資料へのリンクを展開しつつ、当レポートでは概要や重要なポイントに絞った形でまとめておきたいと思います。(詳細は動画やスライドをご参照ください)
- 配信動画アーカイブ(YouTube)
基調講演「ワークフローオーケストレーション入門」
- 登壇者: 長江 五月 氏(株式会社CyberAgent AI事業本部 Dynalyst データサイエンティストマネージャー)
- Xアカウント: satsuki(@nsakki55)さん / X
まず初めに「基調講演」セッションとして株式会社CyberAgentより長江氏の発表がありました。総ページ数120ページ超の非常に濃密な内容でした。
1.ワークフローオーケストレーションとは
- "ワークフロー"を"オーケストレーション"すること
- ここでのワークフローは"2つ以上のステップを含む一連の流れ"を指す
- 複数のシステム、アプリケーション、サービスを管理調整
- ワークフロー実行のためのインフラ・システム・トリガー等の調整を行う
- 近年注目を浴びているワード。
- 歴史から学ぶ
- [1970〜] CRON時代
- 指定された時刻にコマンドを実行
- [1980〜] リレーショナルデータベース時代
- データベース用コードの定期的な実行をスケジュール(例: Oracleのジョブキュー)
- [1990〜] データウェアハウス・データ統合時代
- 複数のデータソースごとにデータを処理、複数のデータに跨ってデータを処理するのが主流に
- [2000〜] ビッグデータ時代
- 2006年 GoogleがHadoopをOSS化
- 2011年 データレイクの提唱と流行
- オンプレ環境のHadoopエコシステムでデータ基盤構築が主流に。これを活用するためのワークフローオーケストレーションツールが登場(Oozie, Luigi, Azkaban, Airflow)
- [2010〜] モダンデータスタック時代
- 2011年 BigQueryがGA
- 2013年 RedshiftがGA
- 2014年 SnowflakeがGA
- 時代はオンプレから安価・高速なクラウドへ/ストリームデータ技術が発達
- モダンデータスタック(Modern Data Stack)の登場でデータ基盤のアーキテクチャに変化が
- 2016年 DigDagがOSS化/StepFunction(AWS)がGA
- 2017年 Prefectがリリース/ArgoがOSS化
- 2018年 Dagsterがリリース
- 2019年 Cloud Composer(GCP)がGA
- 上記のように様々な製品が出てきたが、世代交代は行われてはおらず、様々な技術を組み合わせたデータ基盤が作られている、というのが現状。
- [1970〜] CRON時代
- 今日におけるワークフローオーケストレーションは、これら様々な形で存在する処理やデータスタックと連携し、実行制御を行うものである。
- ワークフローオーケストレーションツールの恩恵は様々ある。
- DAG(Directed Acyclic Graph)の存在
- 初期(Hadoop時代)のワークフローに於いて普及
2. 6つのワークフロー比較
100個以上のワークフローに関する情報がまとまっている下記GitHubリポジトリの中から、6個を厳選して紹介。
紹介されたワークフローサービスは以下。
- Apache Airflow
- ワークフローをDAGとしてプログラムで作成・スケジュール・監視するためのプラットフォーム
- Digdag – Open Source Workflow Engine for the Multi-Cloud Era
- 複雑なタスクパイプラインの構築・実行・スケジュール・監視に役立つシンプルなツール
- Argo Workflows | Argo
- Kubernetes上で並列ジョブを調整するためのオープンソースのコンテナネイティブのワークフローエンジン
- Prefect | Modern Workflow Orchestration
- ワークフローの構築・観測・優先順位付けを行うオーケストレーション・オブザーバビリティプラットフォーム
- Pythonコードをインタラクティブなワークフローに変換する最も簡単な方法
- Dagster | Cloud-native orchestration of data pipelines
- データリネージ統合・可観測性・宣言的プログラミング・テスト機能を持つ、開発ライフサイクル全体をサポートするクラウドネイティブなデータパイプラインオーケストレーター
- AWS Step Functions(分散アプリケーションの調整)| AWS
- AWS Lambda関数と他のAWSサービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバレスのオーケストレーションサービス
特徴比較に関しては以下のようにまとめられています。このような形で整理されているのは非常にありがたいですね。
- ワークフローツール選定について
- どれを選べばいい?
- はじめに考えることは:データ基盤「専用」のワークフローエンジンにするか、会社のワークフローエンジンに「相乗り」するか。
- 選定基準:シンプルに「使いやすい製品かどうか」。
- ここでの「使いやすい」=技術・人・カネの制約の中で、プロダクト課題を解決出来る事のできる、最も扱いやすいもの、の意。
- これらはいずれも書籍「実践的データ基盤への処方箋」からの引用。
3. ML基盤へのワークフローツール導入事例(Optional)
こちらのセクションについては当日発表の際に時間切れでスキップした形となりました。詳細についてはスライドまたは動画をご参照ください。該当ページのリンクは以下です。
LT1「データオーケストレーションツールDagsterの紹介」
- 登壇者: 岩崎 晃 氏(株式会社DataMarket 代表取締役)
続いての発表は株式会社DataMarket 岩崎氏による「データオーケストレーションツールDagsterの紹介」。基調講演セッションでも挙がっていたDagsterに関する入門編、基本的な情報を網羅する形の内容となりました。
本日の登壇資料です。
データオーケストレーションツールDagsterの紹介| Akira Iwasaki #docswell #DataEngineeringStudyhttps://t.co/IIBz25szdv— akira @ DataMarket 💹 (@sista05) March 5, 2024
- 近年のデータエンジニアリング
- 機械学習技術の台頭などもあり、データ業界は盛り上がっている
- また合わせてデータエンジニアリングにも注目が集まっている
- 近年、データエンジニアリングの進歩も見られているものの、「加工」の段階にあたる支配的なサービスはまだ登場していない
- データマネジメント熟成度モデル(DMM)と業界の進歩:高レベルの段階にあたる定義や測定・最適化を実現するような、皆が使っている有名サービスも未だ思い当たるものは無い
- Dagsterの概要
- DagsterはAirflowを超えるために生まれたデータオーケストレーションツール。
- Airflowに比べてシステムの起動が早い/タスクでは無くデータアセットを扱う/開発体験の向上
- Dagsterはデータプラットフォーム:異種ツールの統合は一つのプラットフォームで取り扱うべき(by Nick Schrock/Dagster CEO)
- Dagsterの学習コンテンツ:Dagster Universityがおすすめ。Slackコミュニティもある。
- Data Asset
- Dagsterの機能紹介
- LaunchPad
- Graph
- Sensor
- Resource
- Dagster Cloud Deployment
- Dagster Instance
- Dagster Integration
- Platform化を実現するために様々なツールの統合を計画している
あるデータ エンジニアリング チームは、データ プラットフォームのデータベース間のデータ移動タスクを Dagster の組み込み ELT 機能に置き換えることで、Fivetran の請求額を年間 3 万ドル節約した。という話がされるそうです https://t.co/ZWyC8vV4OO
— akira @ DataMarket 💹 (@sista05) December 3, 2023
- 注目の統合(1). Dagster dbt
- 注目の統合(2). Dagster dbt
- 注目の統合(3). Dagster dbt
LT2「dbtをDagster Cloudでオーケストレーションする」
- 登壇者: 上村 空知 氏(株式会社Algoage データエンジニア)
3つ目のセッションは株式会社Algoage 上村 空知 氏の発表。こちらもDagsterに関する内容となりました。
- dbtの実行管理、フルに活用していきたい。フルに活用するならば「Dagster Cloud」が良いですよというお話をしていく。
dbtをオーケストレーションする技術の選定ポイント
ポイントは主に5つ。 - [dbt固有] - モデル単位のオーケストレーション - 初期段階を超えると「モデル単位のオーケストレーション」がしたくなる - dbt run実行時のオプションが利用可能ではあるが、これを使わずにモデル単位でのオーケストレーションを実現する方法は多くない - [dbt固有ではい] - 相互運用性、Spped To Market/Team Size and Capabilities/運用のしやすさ - これらのポイントに付いては以下を参照。書籍「Fundamentals of Data Engineering」は読んで実践するだけで防げる悲劇がある。 - - 上記書籍の日本語版「データエンジニアリングの基礎 ―データプロジェクトで失敗しないために」が2024年03月27日に発売予定。
Dagster Cloudでdbtを運用するメリット
- サーバレスな環境構築が可能
- Pythonで書けるなら何でも出来る柔軟さがある
- 強力な開発者体験【ここが導入の決め手になった】
- 他のツールには無い良さがあった
- ブランチデプロイ機能
- フィードバックループを素早く回すことの出来る仕組み
- イケてるUI
Dagsterが向いていないケース
- 組織のPython習熟度が低い
- 学習に時間を避くことが出来ない
質疑応答
開催日当日、参加者から募った質問に回答する質疑応答タイムが設けられていました。時間内で実に多くの質問が挙がっており、回答も参考になるものが多かった印象です。それら全てをまとめるのは大変なので、ここではアーカイブ動画内の質疑応答タイム部分に関するリンクを紹介するにとどめておきたいと思います。
まずは長江氏の基調講演直後に1回(53:57〜)。
2回目の質疑応答タイムは上村氏のLT終了後(1:47:52〜)。ここからは、『実践的データ基盤への処方箋』『データマネジメントが30分でわかる本』等の書籍著者であり、Data Enginnering Studyには初回から参加されているという風音屋 ゆずたそさん(ゆずたそ / Sho Yokoyama (風音屋)(@yuzutas0)さん / X も質疑応答に合流されていました。
まとめ
という訳で、『Data Engineering Study #23 Data orchestration 特集』の参加(視聴)レポートでした。
モダンデータスタック、データエンジニアリング領域における「データオーケストレーション」周りの特集ということで強い興味を以て拝聴した形でしたが、非常に内容の濃い、参考になる情報が盛り沢山でした。とりわけDagsterに関する評価が高く、個人的には名前や情報は把握してはいましたが実践までは...という状況でしたので「やっぱりDagsterは触っていかないとだな」という気持ちにさせてくれたことに感謝したいと思います。登壇者及びスタッフの皆様、貴重な情報をありがとうございました! Dagster University、入学(?)するぞ!!